Recursive Functions on Lazy Lists via Domains and Topologies pdfauthor
نویسندگان
چکیده
The usual definition facilities in theorem provers cannot handle all recursive functions on lazy lists; the filter function is a prime counterexample. We present two new ways of directly defining functions like filter by exploiting their dual nature as producers and consumers. Borrowing from domain theory and topology, we define them as a least fixpoint (producer view) and as a continuous extension (consumer view). Both constructions yield proof principles that allow elegant proofs. We expect that the approach extends to codatatypes with finite truncations.
منابع مشابه
Recursive Functions on Lazy Lists via Domains and Topologies pdfauthor=Andreas Lochbihler and Johannes Hölzl
The usual definition facilities in theorem provers cannot handle all recursive functions on lazy lists; the filter function is a prime counterexample. We present two new ways of directly defining functions like filter by exploiting their dual nature as producers and consumers. Borrowing from domain theory and topology, we define them as a least fixpoint (producer view) and as a continuous exten...
متن کاملMechanizing Coinduction and Corecursion in Higher-order Logic
A theory of recursive and corecursive definitions has been developed in higher-order logic (HOL) and mechanized using Isabelle. Least fixedpoints express inductive data types such as strict lists; greatest fixedpoints express coinductive data types, such as lazy lists. Wellfounded recursion expresses recursive functions over inductive data types; corecursion expresses functions that yield eleme...
متن کاملPh.D. Interim Report: Mathematical Studies of Infinite Computation
Polymorphic stream functions operate on the structure of streams, infinite lists of elements, without inspection of the contained data. We prove that a simple system for specifying recursive stream functions, consisting of equations using only stream constructors and destructors and recursive calls, is already enough to define all computable polymorphic stream functions. Requiring an entirely d...
متن کاملA Typed Lambda Calculus with Categorical Type Constructors
A typed lambda calculus with categorical type constructors is introduced. It has a uniform category theoretic mechanism to declare new types. Its type structure includes categorical objects like products and coproducts as well as recursive types like natural numbers and lists. It also allows duals of recursive types, i.e. lazy types, like infinite lists. It has generalized iterators for recursi...
متن کاملA fixedpoint approach to (co)inductive and (co)datatype definitions
This paper presents a fixedpoint approach to inductive definitions. Instead of using a syntactic test such as “strictly positive,” the approach lets definitions involve any operators that have been proved monotone. It is conceptually simple, which has allowed the easy implementation of mutual recursion and iterated definitions. It also handles coinductive definitions: simply replace the least f...
متن کامل